package 二叉树题目.判断是不是完全二叉树;

import java.util.Deque;
import java.util.LinkedList;

public class Solution {
    public boolean isCompleteTree (TreeNode root) {
        // write code here
        if (root == null){
            return true;
        }
        Deque<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        TreeNode cur = null;
        boolean flg = false;
        while (!queue.isEmpty()){
            cur = queue.poll();
            // 第一次碰到空节点就跳过此次循环，还需要判断后面是否还存在叶子节点，
            if (cur == null){
                flg = true;
                continue;
            }
            // 再次碰都叶子节点，说明不是完全二叉树，返回flase
            if (cur != null && flg){
                return false;
            }
            queue.offer(cur.left);
            queue.offer(cur.right);
        }
        return true;
    }
}
